package com.tbit.uqbike.object.pojo.vo;

import com.tbit.uqbike.object.pojo.ParamDate;
import com.tbit.uqbike.webmanager.util.csv.annotations.Csv;
import com.tbit.uqbike.webmanager.util.csv.annotations.Sum;

import java.math.BigDecimal;

/**
 * 虚拟收支
 *
 * @Author:yanlun
 * @DATE: 2022/11/18
 */
public class AccountDayStatFictitiousDetailVO extends ParamDate {

    private Integer accountId;
    /**
     * 区域
     */
    @Csv(name = "区域")
    private String accountName;
    /**
     * 日期
     */
    @Csv(name = "日期")
    private String date;
    /**
     * 用车虚拟总抵扣费用
     */
    @Sum
    @Csv(name = "用车虚拟总抵扣费用")
    private BigDecimal fictitiousIncome;
    /**
     * 用车虚拟总抵扣费用笔数
     */
    @Sum
    @Csv(name = "用车虚拟总抵扣费用笔数")
    private Long fictitiousIncomeCount;
    /**
     * 用车虚拟总抵扣费用退款
     */
    @Sum
    @Csv(name = "用车虚拟总抵扣费用退款")
    private BigDecimal fictitiousExpend;
    /**
     * 用车虚拟总抵扣费用退款笔数
     */
    @Sum
    @Csv(name = "用车虚拟总抵扣费用退款笔数")
    private Long fictitiousExpendCount;
    /**
     * 卡券总抵扣费用
     */
    @Sum
    @Csv(name = "卡券总抵扣费用")
    private BigDecimal cardIncome;
    /**
     * 卡券总抵扣费用笔数
     */
    @Sum
    @Csv(name = "卡券总抵扣费用笔数")
    private Long cardIncomeCount;
    /**
     * 卡券总抵扣费用退款
     */
    @Sum
    @Csv(name = "卡券总抵扣费用退款")
    private BigDecimal cardExpend;
    /**
     * 卡券总抵扣费用退款笔数
     */
    @Sum
    @Csv(name = "卡券总抵扣费用退款笔数")
    private Long cardExpendCount;

    /**
     * 礼品卡总抵扣费用
     */
    @Sum
    @Csv(name = "礼品卡总抵扣费用")
    private BigDecimal giftCardIncome;
    /**
     * 礼品卡总抵扣费用笔数
     */
    @Sum
    @Csv(name = "礼品卡总抵扣费用笔数")
    private Long giftCardIncomeCount;
    /**
     * 礼品卡总抵扣费用退款
     */
    @Sum
    @Csv(name = "礼品卡总抵扣费用退款")
    private BigDecimal giftCardExpend;
    /**
     * 礼品卡总抵扣费用退款笔数
     */
    @Sum
    @Csv(name = "礼品卡总抵扣费用退款笔数")
    private Long giftCardExpendCount;

    /**
     * 人工修改订单总抵扣费用
     */
    @Sum
    @Csv(name = "人工修改订单总抵扣费用")
    private BigDecimal manualIncome;
    /**
     * 人工修改订单总抵扣费用笔数
     */
    @Sum
    @Csv(name = "人工修改订单总抵扣费用笔数")
    private Long manualIncomeCount;
    /**
     * 人工修改订单总抵扣费用退款
     */
    @Sum
    @Csv(name = "人工修改订单总抵扣费用退款")
    private BigDecimal manualExpend;
    /**
     * 人工修改订单总抵扣费用退款笔数
     */
    @Sum
    @Csv(name = "人工修改订单总抵扣费用退款笔数")
    private Long manualExpendCount;

    /**
     * 其他总抵扣费用
     */
    @Sum
    @Csv(name = "其他总抵扣费用")
    private BigDecimal otherIncome;
    /**
     * 其他总抵扣费用笔数
     */
    @Sum
    @Csv(name = "其他总抵扣费用笔数")
    private Long otherIncomeCount;
    /**
     * 其他总抵扣费用退款
     */
    @Sum
    @Csv(name = "其他总抵扣费用退款")
    private BigDecimal otherExpend;
    /**
     * 其他总抵扣费用退款笔数
     */
    @Sum
    @Csv(name = "其他总抵扣费用退款笔数")
    private Long otherExpendCount;

    public AccountDayStatFictitiousDetailVO() {
        fillData();
    }

    public Integer getAccountId() {
        return accountId;
    }

    public void setAccountId(Integer accountId) {
        this.accountId = accountId;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public BigDecimal getFictitiousIncome() {
        return fictitiousIncome == null ? null : fictitiousIncome.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setFictitiousIncome(BigDecimal fictitiousIncome) {
        this.fictitiousIncome = fictitiousIncome;
    }

    public Long getFictitiousIncomeCount() {
        return fictitiousIncomeCount;
    }

    public void setFictitiousIncomeCount(Long fictitiousIncomeCount) {
        this.fictitiousIncomeCount = fictitiousIncomeCount;
    }

    public BigDecimal getFictitiousExpend() {
        return fictitiousExpend == null ? null : fictitiousExpend.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setFictitiousExpend(BigDecimal fictitiousExpend) {
        this.fictitiousExpend = fictitiousExpend;
    }

    public Long getFictitiousExpendCount() {
        return fictitiousExpendCount;
    }

    public void setFictitiousExpendCount(Long fictitiousExpendCount) {
        this.fictitiousExpendCount = fictitiousExpendCount;
    }

    public BigDecimal getCardIncome() {
        return cardIncome == null ? null : cardIncome.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCardIncome(BigDecimal cardIncome) {
        this.cardIncome = cardIncome;
    }

    public Long getCardIncomeCount() {
        return cardIncomeCount;
    }

    public void setCardIncomeCount(Long cardIncomeCount) {
        this.cardIncomeCount = cardIncomeCount;
    }

    public BigDecimal getCardExpend() {
        return cardExpend == null ? null : cardExpend.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setCardExpend(BigDecimal cardExpend) {
        this.cardExpend = cardExpend;
    }

    public Long getCardExpendCount() {
        return cardExpendCount;
    }

    public void setCardExpendCount(Long cardExpendCount) {
        this.cardExpendCount = cardExpendCount;
    }

    public BigDecimal getGiftCardIncome() {
        return giftCardIncome == null ? null : giftCardIncome.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setGiftCardIncome(BigDecimal giftCardIncome) {
        this.giftCardIncome = giftCardIncome;
    }

    public Long getGiftCardIncomeCount() {
        return giftCardIncomeCount;
    }

    public void setGiftCardIncomeCount(Long giftCardIncomeCount) {
        this.giftCardIncomeCount = giftCardIncomeCount;
    }

    public BigDecimal getGiftCardExpend() {
        return giftCardExpend == null ? null : giftCardExpend.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setGiftCardExpend(BigDecimal giftCardExpend) {
        this.giftCardExpend = giftCardExpend;
    }

    public Long getGiftCardExpendCount() {
        return giftCardExpendCount;
    }

    public void setGiftCardExpendCount(Long giftCardExpendCount) {
        this.giftCardExpendCount = giftCardExpendCount;
    }

    public BigDecimal getManualIncome() {
        return manualIncome == null ? null : manualIncome.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setManualIncome(BigDecimal manualIncome) {
        this.manualIncome = manualIncome;
    }

    public Long getManualIncomeCount() {
        return manualIncomeCount;
    }

    public void setManualIncomeCount(Long manualIncomeCount) {
        this.manualIncomeCount = manualIncomeCount;
    }

    public BigDecimal getManualExpend() {
        return manualExpend == null ? null : manualExpend.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setManualExpend(BigDecimal manualExpend) {
        this.manualExpend = manualExpend;
    }

    public Long getManualExpendCount() {
        return manualExpendCount;
    }

    public void setManualExpendCount(Long manualExpendCount) {
        this.manualExpendCount = manualExpendCount;
    }

    public BigDecimal getOtherIncome() {
        return otherIncome == null ? null : otherIncome.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setOtherIncome(BigDecimal otherIncome) {
        this.otherIncome = otherIncome;
    }

    public Long getOtherIncomeCount() {
        return otherIncomeCount;
    }

    public void setOtherIncomeCount(Long otherIncomeCount) {
        this.otherIncomeCount = otherIncomeCount;
    }

    public BigDecimal getOtherExpend() {
        return otherExpend == null ? null : otherExpend.setScale(2, BigDecimal.ROUND_HALF_UP);
    }

    public void setOtherExpend(BigDecimal otherExpend) {
        this.otherExpend = otherExpend;
    }

    public Long getOtherExpendCount() {
        return otherExpendCount;
    }

    public void setOtherExpendCount(Long otherExpendCount) {
        this.otherExpendCount = otherExpendCount;
    }

    public void fillData() {
        BigDecimal bigDecimal = new BigDecimal(0);
        this.fictitiousIncome = this.fictitiousIncome == null ? bigDecimal : this.fictitiousIncome;
        this.fictitiousIncomeCount = this.fictitiousIncomeCount == null ? 0L : this.fictitiousIncomeCount;
        this.fictitiousExpend = this.fictitiousExpend == null ? bigDecimal : this.fictitiousExpend;
        this.fictitiousExpendCount = this.fictitiousExpendCount == null ? 0L : this.fictitiousExpendCount;
        this.cardIncome = this.cardIncome == null ? bigDecimal : this.cardIncome;
        this.cardIncomeCount = this.cardIncomeCount == null ? 0L : this.cardIncomeCount;
        this.cardExpend = this.cardExpend == null ? bigDecimal : this.cardExpend;
        this.cardExpendCount = this.cardExpendCount == null ? 0L : this.cardExpendCount;
        this.giftCardIncome = this.giftCardIncome == null ? bigDecimal : this.giftCardIncome;
        this.giftCardIncomeCount = this.giftCardIncomeCount == null ? 0L : this.giftCardIncomeCount;
        this.giftCardExpend = this.giftCardExpend == null ? bigDecimal : this.giftCardExpend;
        this.giftCardExpendCount = this.giftCardExpendCount == null ? 0L : this.giftCardExpendCount;
        this.manualIncome = this.manualIncome == null ? bigDecimal : this.manualIncome;
        this.manualIncomeCount = this.manualIncomeCount == null ? 0L : this.manualIncomeCount;
        this.manualExpend = this.manualExpend == null ? bigDecimal : this.manualExpend;
        this.manualExpendCount = this.manualExpendCount == null ? 0L : this.manualExpendCount;
        this.otherIncome = this.otherIncome == null ? bigDecimal : this.otherIncome;
        this.otherIncomeCount = this.otherIncomeCount == null ? 0L : this.otherIncomeCount;
        this.otherExpend = this.otherExpend == null ? bigDecimal : this.otherExpend;
        this.otherExpendCount = this.otherExpendCount == null ? 0L : this.otherExpendCount;
    }
}
